Funzioni di manipolazione delle stringhe

Il PHP, come abbiamo avuto esempio nella prima lezione, include nel suo motore diverse funzioni predefinite per la manipolazione delle stringhe, le quali, fortunatamente per noi programmatori, sono sempre in crescita grazie al contributo fornito da tanti singoli programmatori al sito ufficiale del PHP (www.php.net).
Esse sono state create appositamente per la semplificazione della scrittura del codice per quanto riguarda gli argomenti più disparati che si possono trattare all'interno di un database, quali ad es. la codificazione di una determinata stringa, il calcolo della sua lunghezza prima di registrarla in un campo del database ed altro ancora. Per renderci conto di come funziona il tutto e delle potenzialità offerte da queste funzioni cominciamo a compilare il modulo riprodotto in figura sotto.

Apriamo il Blocco Note (o Notepad) e scriviamo il seguente codice HTML:

<HTML>
<HEAD>
<TITLE>Modulo di input generico</TITLE>
</HEAD>
<BODY>

<FORM METHOD="post" ACTION="visualizza_input.php">

<P><strong>Campo di testo:</strong><br>
<TEXTAREA NAME="testo" COLS=45 ROWS=5 WRAP=virtual></TEXTAREA>
</p>

<P><strong>Funzioni di manipolazione delle stringhe:</strong><br>
<INPUT TYPE="radio" NAME="funzione" VALUE="md5" checked> md5<br>
<INPUT TYPE="radio" NAME="funzione" VALUE="strlen"> lunghezza della stringa<br>
<INPUT TYPE="radio" NAME="funzione" VALUE="strrev"> stringa al contrario<br>
<INPUT TYPE="radio" NAME="funzione" VALUE="strtoupper"> stringa in maiuscolo<br>
<INPUT TYPE="radio" NAME="funzione" VALUE="strtolower"> stringa in minuscolo<br>
<INPUT TYPE="radio" NAME="funzione" VALUE="ucwords"> stringa con le prime lettere delle parole in maiuscolo</P>

<P><INPUT TYPE="submit" NAME="invio" VALUE="Effettua l'operazione"></P>

</FORM>

</BODY>
</HTML>

Come visto nella lezione precedente, all'interno dei singoli moduli di tipo "radio" viene dichiarata una variabile chiamata funzione, in quanto, come sapete da precedenti lezioni HTML, il modulo di tipo radio permette la selezione di una sola opzione tra le multiple scelte dichiarate e quindi la variabile che dovrà assumerne il valore sarà una soltanto, e ad ognuno dei singoli moduli viene assegnata, come valore della variabile, una funzione predefinita del PHP: come sapete, da linguaggi di programmazione già studiati in precedenza, una funzione, specie se predefinita, è una particolare porzione di programma, in questo caso già contenuto nel PHP, che permette la trasformazione di particolari valori, passati direttamente da variabile (le parentesi indicano che la funzione ha bisogno della variabile da trasformare), in altri valori distinti.
La prima funzione, denominata md5 e la cui sintassi è md5();, restituisce il valore hash della stringa: il valore digitale non è altro che una codifica alfanumerica della stringa stessa utilizzata perlopiù nel confronto esatto tra stringhe e, nella fattispecie, nel controllo modulare delle password in genere.
La seconda funzione, chiamata strlen e la cui sintassi, come la precedente funzione e come tutte le altre a seguire è strlen();, restituisce la lunghezza della stringa, funzione utile per il controllo della stessa prima della memorizzazione in un database o invio via posta elettronica; la terza funzione, strrev();, ricorda un po' il  metodo leonardiano di criptare un testo (come molti di voi sanno Leonardo da Vinci aveva l'abitudine, per rendere i suoi scritti segreti ed incomprensibili alla sua epoca, di scrivere al contrario e da destra a sinistra i propri trattati) e in alcuni casi è ancora un valido metodo per il criptaggio di determinate stringhe.
Le successive funzioni, strtoupper(); e strtolower();, sono utilizzate principalmente per il controllo di stringhe in applicazioni case-sensitive, cioè che distinguono le lettere maiuscole da quelle minuscole, in quanto le stesse trasformano rispettivamente in caratteri maiuscoli e minuscoli la stringa passata.
Infine l'ultima funzione da noi trattata, e denominata ucword();, permette la trasformazione delle prime lettere di ciascuna parola che compone la frase da minuscola, qualora lo fosse, in maiuscola.

Adesso passiamo alla codifica dello script PHP che permetterà l'esecuzione delle singoli funzioni appena trattate. Malgrado l'apparente complessità nell'impostare il modulo per la manipolazione delle stringhe, lo script al contrario è di una semplicità estrema.
Basta aprire il proprio Blocco Note e scrivere:

<?
$risultato = $funzione($testo);
?>

<HTML>
<HEAD>
<TITLE>Risultati di input generico</TITLE>
</HEAD>
<BODY>

<? echo "$risultato"; ?>

</BODY>
</HTML>

Come potete notare dalla prima istruzione in PHP ad una variabile chiamata risultato è stata associata il valore della funzione predefinita, contenuta appunto nella variabile funzione, la quale a sua volta, per la sintassi della funzione vista precedentemente, manipola la stringa contenuta nel modulo di tipo TEXTAREA la cui variabile che lo contiene è chiamata testo.
Il resto è pienamente intuibile dalla codifica HTML già conosciuta, unito allo script per visualizzare sullo schermo il risultato della manipolazione. Naturalmente è permessa ogni personalizzazione dell'output grazie ai tag di formattazione del testo dell'HTML stesso.